﻿/*di Carbone Carlo
 * */

using System;
using System.Windows.Forms;
using BadgeManager.Controller;
using BadgeManager.Model;

namespace Badge_Manager.View
{
    public partial class frmNuovoUtente : Form
    {
        private Utente Utente;

        public frmNuovoUtente(Utente utente)
        {
            InitializeComponent();
            this.Utente = utente;
            if (Utente == null)
            {
                chkLettura.Enabled = false;
                chkModifica.Enabled = false;
                chkScrittura.Enabled = false;
                chkSuperAdmin.Checked = true;
                chkSuperAdmin.Enabled = false;
            }
            this.ElencoUtenti();
        }

        private void Pulisci()
        {
            foreach (Control c in pnl1.Controls)
            {
                if (c is TextBox)
                    c.Text = "";
            }
            chkLettura.Checked = true;
            chkScrittura.Checked = false;
            chkModifica.Checked = false;
        }

        private void Salva()
        {
            if (txtUsername.Text == "" && txtPassword.Text == "")
            {
                MessageBox.Show("I dati obbligatori non sono stati inseriti");
                return;
            }
            ctrlUtente cUtente = new ctrlUtente();
            cUtente.NomeUtente = txtUsername.Text.ToString();
            cUtente.Password = txtPassword.Text.ToString();
            cUtente.DataRegistrazione = DateTime.Today;
            cUtente.Permesso = new Permesso()
            {
                IdUtente = cUtente.Id,
                Lettura = chkLettura.Checked,
                Modifica = chkModifica.Checked,
                Scrittura = chkScrittura.Checked,
                Sa = chkSuperAdmin.Checked
            };
            if (cUtente.CreaUtente(cUtente) > 0 &&
                (cUtente.CreaPermesso(cUtente) > 0))
            {
                if (this.Utente == null)
                    MessageBox.Show("E' necessario riavviare il programma per apportare le nuove modifiche");

                this.ElencoUtenti();
                if (chkNonChiudere.Checked)
                    this.Pulisci();
                else
                    this.Close();
            }
        }

        private void ElencoUtenti()
        {
            ctrlUtente cUtente = new ctrlUtente();
            gridUtenti.DataSource = null;
            gridUtenti.DataSource =
                cUtente.SelezionaTutto();

            gridUtenti.Columns["Id"].Visible = false;
        }

        private void cmdAnnulla_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cmdAggiungi_Click(object sender, EventArgs e)
        {
            this.Salva();
        }

        private void chkSuperAdmin_CheckedChanged(object sender, EventArgs e)
        {
            if (chkSuperAdmin.Checked)
            {
                chkLettura.Checked = chkSuperAdmin.Checked;
                chkScrittura.Checked = chkSuperAdmin.Checked;
                chkModifica.Checked = chkSuperAdmin.Checked;

                chkLettura.Enabled = false;
                chkScrittura.Enabled = false;
                chkModifica.Enabled = false;
            }
            else
            {
                chkScrittura.Checked = chkSuperAdmin.Checked;
                chkModifica.Checked = chkSuperAdmin.Checked;

                chkLettura.Enabled = true;
                chkScrittura.Enabled = true;
                chkModifica.Enabled = true;
            }
        }
    }
}